package com.cash.loan.modular.cash.dao;

import com.cash.loan.modular.cash.model.LoanProduct;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.cash.loan.modular.cash.transfer.ProductDetailVo;
import com.cash.loan.modular.cash.transfer.ProductListVo;
import com.cash.loan.modular.cash.transfer.ProductQueryDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 借款产品表 Mapper 接口
 * </p>
 *
 * @author yangbo123
 * @since 2018-07-11
 */
public interface LoanProductMapper extends BaseMapper<LoanProduct> {

    /**
     * 得到产品列表数据列表
     * @param conditions
     * @return
     */
    List<ProductListVo> getProductListByConditions(@Param("conditions")ProductQueryDto conditions);

    /**
     * 改变产品状态
     * @param id
     * @param productFlag
     * @return
     */
    int updateProductStatus(@Param("id") Long id,@Param("productFlag") Long productFlag);

    /**
     * 改变管理状态
     * @param id
     * @param manageFlag
     * @return
     */
    int updateManageStatus(@Param("id") Long id,@Param("manageFlag") Long manageFlag);

    /**
     * 改变下载状态
     * @param id
     * @param downloadFlag
     * @return
     */
    int updateDownloadStatus(@Param("id") Long id,@Param("downloadFlag") Long downloadFlag);

    /**
     * 产品详情
     * @param productId
     * @return
     */
    ProductDetailVo getProductDetail(@Param("id") Long productId);

    /**
     * 通过pv
     * @param productId
     * @return
     */
    List<Map<String,Object>> productPv(@Param("id") Long productId);

    /**
     * 查询产品简单列表
     * @param keyword
     * @return
     */
    List<Map<String,Object>> getProductListForAd(@Param("keyword") String keyword);

    /**
     * 通过名称查看是否重复
     * @param productName
     * @return
     */
    int existByName(@Param("productName") String productName);

    /**
     * 更改排序值
     * @param id
     * @param orderNum
     */
    void changeOrderNum(@Param("id") Integer id,@Param("orderNum") Integer orderNum);
}
